﻿using System;

namespace SimpleFactoryPatterDemo
{
    /// <summary>
    /// 简单工厂也叫静态工厂方法--从实际来讲并不是一种设计模式
    /// 但我们将之列入进来与抽象工厂模式、工厂方法模式一起
    /// 是为了剖析整个的设计过程的演进
    /// Note : 简单工厂模式的实质是由一个工厂类根据传入的参数，动态决定应该创建哪一个产品类（这些产品类继承自一个父类或接口）的实例。
    /// 简单工厂几大角色： 简单工厂、抽象产品、具体产品
    /// </summary>
    class Client
    {
        static void Main(string[] args)
        {
            var operate = "-";
            var operation = SimpleFactory.GetOperation(operate);
            operation.NumberA = 2.50d;
            operation.NumberB = 2.00d;
            var result = operation.GetResult();

            Console.WriteLine("{0} {1} {2} = {3}", operation.NumberA, operate, operation.NumberB, result);
            Console.ReadKey();
        }
    }
}
